МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет “Львівська політехніка”
Інститут післядипломної освіти
ЗВІТ
Про виконання лабораторної роботи №3
«Ітераційні методи розв’язування системи лінійних рівнянь»
з дисципліни «Чисельні методи»
Тема роботи: Ітераційні методи розв’язування системи лінійних рівнянь.
Мета роботи: Ознайомлення на практиці з ітераційнними методами розв’язування систем лінійних алгебраїчних рівнянь.
1. Теоретичні відомості
Метод послідовних наближень (Якобі)
Розглянемо систему лінійних алгебраїчних рівнянь виду:
/
Для розв’язання системи методами послідовних наближень необхідно виконати наступні кроки:
Кожне рівняння системи розділити на діагональний елемент де k=1,2...n, n – кількість рівнянь в системі, і перетворити кожне рівняння системи відносно координат вектора, індекс якого співпадає з номером рівняння:
/
Якщо ввести перепозначення
/, /,
де k=1,2…n; i=1,2…n, то система матиме вигляд:
/
Така система називається зведеною до нормального вигляду.
.
Якщо деяким чином визначити, так званий, вектор початкових значень , який знаходиться в правій частині, то можна отримати певні значення вектора ,,…
.
Вибір початкового наближення
В якості вектора початкових наближень вибирають:
вектор, в якого всі координати хі дорівнюють 0;
вектор, в якого всі координати хі дорівнюють 1;
вектор, координати /якого дорівнюють координатам вектора вільних членів /;
координати вектору / вибирають в результаті аналізу особливостей об’єкту дослідження та задачі, яка розв’язується.
Умова закінчення ітераційного процесу
.
Умови збіжності ітераційного процесу (теорема про збіжність)
Ітераційний процес пошуку розв’язку системи лінійних алгебраїчних рівнянь виду (1) наближеними методами збігається, якщо будь-яка канонічна норма матриці .
Канонічні норми матриці
/
Норма матриці - додатне число, яке визначається за такими умовами:
перша канонічна норма – це максимальна з сум модулів елементів матриці коефіцієнтів / по стрічках:
/
друга канонічна норма – це максимальна з сум модулів елементів матриці коефіцієнтів / по стовбцях:
/,
третя канонічна норма – це корінь квадратний з сум квадратів модулів всіх елементів матриці коефіцієнтів /:
/.
Метод Зейделя
Метод можна розглядати як модифікацію метода Якобі.
Основна ідея - при обчисленні чергового (n+1)-го наближення до невідомого xi при i >1 використовують вже знайдені (n+1)-е наближення до x1, x2, ..., xi - 1, а не n-е наближення, як в методі Якобі.
Розрахункова формула методу:
/,
i = 1, 2, ... m..
Умова збіжності і критерій закінчення ітерацій аналогічні як в методі Якобі.
Якщо матриця A - симетрична і додатньо визначена, то при будь-якому виборі початкового наближення метод Зейделя збіжний.
2. Хід роботи
Завдання 1 (варіант 5). Розв’язати систему лінійних рівнянь методом ітерацій з точністю до 0,001, наперед оцінивши число необхідних для цього кроків.
Система рівнянь вже перетворена до вигляду:
, зручному для ітерацій. Кількість кроків визначити із співвідношення:
Завдання 2. Розв’язати систему лінійних рівнянь методом Зейделя з точністю до 0,001.
Звіт до лабораторної роботи повинен містити такі структурні елементи:
Титульний аркуш.
Тема.
Мета.
Короткі теоретичні відомості.
Алгоритм розв’язку СЛАР.
Текст програми з коментарями.
Вигляд реалізованої програми.
Висновки.
3. Текст програми методу Якобі
#include <iostream>
#include <conio.h>
#include <clocale>
#include <math.h>
#include <cmath>
using namespace std;
int const N = 4;
const double eps = 0.001;
//якщо 0 - то ввід вхідних даних з клавіатури
int const testMode = 1;
double A[N][N], X[N], F[N];
//зчитування масиву з клавіатури
void input(double a[N][N], int n, int m) {
for(int i=0; i < n; i++)
for(int j = 0; j < m; j++) {
cout << "a[" << i << "][" << j << "]: ";
cin >> a...